# -*- coding: utf-8 -*-
# appengine imports
from google.appengine.ext import db
from google.appengine.api import memcache

#python imports
import cgi, sys, random, hashlib, urllib, math
from datetime import datetime

#local imports
from baserequesthandler import BaseRequestHandler
from benutzer.models.schueler import Schueler, Besucher


#todo: memcache irgendwie einbauen?????

class Handler(BaseRequestHandler):
  def get(self):
    memcache.flush_all()
    stringliste = memcache.get('top10')
    if stringliste is not None:
      top10 = eval(stringliste)
    else:
      alle_schueler = Schueler.all()
      schueler_liste = []
      for s in alle_schueler:
        pkte = s.get_punktestand()
        richtig_prozent = s.get_fitness()*10
        anz_bearbeitet = len(s.history_POST)
        schriftgroesse = 200 # min(int(math.log(abs(pkte)+3)*100),400) # relative schriftgroesse in Prozent
        pktstand = "%0.1f".rjust(7) % pkte
        schueler_liste.append((pkte,s.nickname,richtig_prozent ,anz_bearbeitet, pktstand))
      schueler_liste.sort(reverse=True)
      top10 = schueler_liste[0:min(len(schueler_liste),9)]
      memcache.add('top10',str(top10),60*60)

    template_values = {
       'top10' : top10
    }
    self.generate('benutzer/top10.html', template_values)
    #self.response.out.write(schueler_liste)
